I. Field of the Invention
The present invention relates to communications systems, and particularly to path metric normalization.
II. Description of the Related Art
A major portion of the processing power for third generation wireless communications revolves around trellis-based (“butterfly”) algorithms, such as the log domain maximum a posteriori (logMAP) algorithm or the Viterbi algorithm (VA).
A hardware component of any trellis-based algorithm processor is the add-compare-select (ACS) unit, which approximates trellis state probability calculations in the log domain. In use, the ACS unit has two competing input paths, and operates to select the maximum of these two inputs. In the case of the logMAP algorithm, the ACS unit applies a corrective factor based on the difference of the incoming paths. Two ACS units are typically combined together to create a trellis “butterfly” arrangement, which calculates the path metrics for two new states based on two previous states. The path metrics represent a measure of the probability of a particular state based on the past. received symbols.
Normalization of the path metrics in the ACS butterfly for trellis-based algorithms is performed to prevent overflow and to limit the dynamic range of the variables. Normalization is performed by determining the maximum or minimum path metric across all the states, and then, in the next cycle, that value is subtracted from all the states to limit the “growth” of the path metrics, for the reasons noted directly above.
The trellis butterfly calculation forms the critical execution path for trellis algorithms, i.e., it is the trellis butterfly calculation that limits the maximum speed of the algorithm, and thus the speed of execution of the trellis butterfly calculation dictates overall performance. Consequently, every effort spent on optimizing the ACS unit translates directly to performance gains in the trellis algorithm processing.
However, existing normalization techniques are not universally satisfactory. Current practice is to normalize the path metrics with a value computed as the maximum or minimum value of all the path metrics. In existing implementations, the maximum or minimum is calculated using a comparator tree to isolate the maximum or minimum value among the many states. This can be quite costly in terms of computational delay, as a comparator produces a delay similar to that of an adder.